package com.fh.controller;/**
 * 描述:
 * Author:袁亚强
 * Date:2021/11/1011:54
 */

import com.fh.common.yyqData;
import com.fh.entity.po.User;
import com.fh.entity.vo.UserVo;
import com.fh.service.UserService;
import com.fh.utils.FileUploadUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.util.UUID;

/**
 * created by macro on 2021/11/10,
 */
@RestController
@RequestMapping("user")
public class UserController {
    @Autowired
    private UserService userService;

    // 注册
    @GetMapping("addUser")
    public yyqData addUser(User user) {
        if (StringUtils.isEmpty(user.getName()) || StringUtils.isEmpty(user.getPassword())) {
            return yyqData.error(400, "缺少参数");
        }
        userService.addUser(user);
        return yyqData.success("");
    }

    //登录
    @GetMapping("login")
    public yyqData login(String name, String password) {
        if (StringUtils.isEmpty(name) || StringUtils.isEmpty(password)) {
            return yyqData.error(400, "缺少参数");
        }
        return yyqData.success(userService.login(name, password));
    }

    //图篇上传
    @PostMapping("upload")
    public yyqData upload(MultipartFile img) throws Exception {
        //处理保存文件名
        String fileType = img.getOriginalFilename().substring(img.getOriginalFilename().lastIndexOf("."));
        return yyqData.success(FileUploadUtils.uploadFileOss(img.getInputStream(), "imgs/" + UUID.randomUUID().toString() + fileType));
    }

    //三级联动
    @GetMapping("queryArea")
    public yyqData queryAreaById(Integer pid) {
        if (pid == null) {
            return yyqData.error(400, "缺少参数");
        }
        return yyqData.success(userService.queryAreaById(pid));
    }

    //查询name是否存在
    @GetMapping("queryByName")
    public yyqData queryByName(String name) {
        if (StringUtils.isEmpty(name)) {
            return yyqData.error(400, "缺少参数");
        }
        return yyqData.success(userService.queryByName(name));
    }


    //回显
    @GetMapping("queryById")
    public yyqData queryById(Integer id) {
        if (id == null) {
            return yyqData.error(400, "缺少参数");
        }
        return yyqData.success(userService.queryById(id));
    }


    //修改
    @PostMapping("updateUserById")
    public yyqData updateUserById(User user) {
        if (user.getId() == null) {
            return yyqData.error(400, "缺少参数");
        }
        userService.updateUserById(user);
        return yyqData.success("");
    }


    //删除
    @PostMapping("deleteUser")
    public yyqData deleteUser(Integer id) {
        if (id == null) {
            return yyqData.error(400, "缺少参数");
        }
        userService.deleteUser(id);
        return yyqData.success("");
    }



    //批量删除
    @PostMapping("batchDelCar")
    public yyqData batchDelCar(String ids) {
        if (StringUtils.isEmpty(ids)) {
            return yyqData.error(400, "缺少参数");
        }
        userService.batchDelUser(ids);
        return yyqData.success("");
    }


    //查询下拉
    @GetMapping("queryAllArea")
    public yyqData queryAllArea() {
        return yyqData.success(userService.queryAllArea());
    }

    //查询下拉
    @GetMapping("queryAllArea2")
    public yyqData queryAllArea2() {
        return yyqData.success(userService.queryAllArea2());
    }

    //取值
    @PostMapping("getUserInfo")
    public yyqData getUserInfo(HttpServletRequest request){
            return yyqData.success(request.getSession().getAttribute("login_user"));
    }

    //查询条件查询分页
    @GetMapping("queryUserAllData")
    public yyqData queryUserAllData(UserVo userVo){
        if (userVo.getLimit()==null && userVo.getPage()==null){
            return yyqData.error(400, "缺少参数");
        }
        return yyqData.success(userService.queryUserAllData(userVo));
    }

    //查询全部数据
    @GetMapping("queryUserAll")
    public yyqData queryUserAll(User user){
        return yyqData.success(userService.queryUserAll(user));
    }


    //查询地区名称
    @GetMapping("queryUserAreaName")
    public yyqData queryUserAreaName(User user){
        return yyqData.success(userService.queryUserAreaName(user));
    }
    //修改密码
    @GetMapping("updatePassword")
    public yyqData updatePassword(User user){
        if (StringUtils.isEmpty(user.getName())){
            return yyqData.error(400,"缺少参数");
        }else if(StringUtils.isEmpty(user.getPassword())){
            return yyqData.error(400,"缺少参数");
        }else if(user.getId()==null){
            return yyqData.error(400,"缺少参数");
        }
        userService.updatePassword(user);
        return yyqData.success("");
    }


    //改密码时判断密码输入是否与原来一致   //1是 对   2是不对
    @GetMapping("queryPasswordById")
    public yyqData queryPasswordById(User user){
        if (StringUtils.isEmpty(user.getName())){
            return yyqData.error(400,"缺少参数");
        }else if(StringUtils.isEmpty(user.getPassword())){
            return yyqData.error(400,"缺少参数");
        }else if(user.getId()==null){
            return yyqData.error(400,"缺少参数");
        }

        return yyqData.success(userService.queryPasswordById(user));
    }

    //重置密码
    @PostMapping("resetPassword")
    public yyqData resetPassword(User user){
        if (StringUtils.isEmpty(user.getName())){
            return yyqData.error(400,"缺少参数");
        }else if(user.getId()==null){
            return yyqData.error(400,"缺少参数");
        }
        userService.resetPassword(user);
        return yyqData.success("");
    }

}

